setTimeout(() => {
   console.log('1'); 
}, 0);
setImmediate(
    ()=>{
        console.log('2');
    }
)
process.nextTick(
    ()=>{
        console.log('3');
    }
)



/* nodejs轮询机制借助libuv库执行
 一共6个阶段 
 如果定时器时间 是0，直接执行定时器 ， 在到了poll阶段时，如果没有setImmediate，直接下一个阶段，如果有setImmediate，执行setImmediate函数，
 跟放置的顺序没有关系
 在有settimeout的情况下都会先执行定时器 再执行setImmediate
而process.nextTick 在任何时候都会优先执行*/